Skip to content

Conversation

@tomas-langer
Copy link
Member

Resolves #10857

@tomas-langer tomas-langer requested a review from Verdent November 28, 2025 11:10
@tomas-langer tomas-langer self-assigned this Nov 28, 2025
@oracle-contributor-agreement oracle-contributor-agreement bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label Nov 28, 2025
@tomas-langer tomas-langer requested a review from Copilot November 28, 2025 11:46
Copilot finished reviewing on behalf of tomas-langer November 28, 2025 11:49
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds declarative security documentation to support issue #10857. The changes include new security-related documentation for the declarative injection model, updates to the service registry reference documentation, removal of unused code, and a minor refactoring in the mapper implementation.

Key changes:

  • Added comprehensive security section to declarative injection documentation covering authentication, authorization, and audit annotations
  • Restructured service registry reference documentation from module-based to consolidated contract table
  • Removed unused CoreService.java class (278 lines)

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 5 comments.

File Description
docs/src/main/asciidoc/se/injection/declarative.adoc Added new Security section documenting supported security annotations for WebServer endpoints
docs/src/main/asciidoc/service-registry/service_reference.adoc Restructured documentation from module-based sections to unified contract table with package, weight, module, description, and qualifier columns
service/codegen/src/main/java/io/helidon/service/codegen/CoreService.java Deleted unused service class (no remaining references found)
common/mapper/src/main/java/io/helidon/common/mapper/MappersImpl.java Removed @Service.Singleton annotation; class now registered via @Service.Inject constructor; updated copyright year to 2025

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review for a chance to win a $100 gift card. Take the survey.

Security provides protection of WebServer endpoints.
Identity propagation (when using a WebClient) depends on configuration of the client and configuration of security.
We currently do not have declarative way of modifying client behavior.
Copy link

Copilot AI Nov 28, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing article "a" before "declarative way". The sentence should read: "We currently do not have a declarative way of modifying client behavior."

Suggested change
We currently do not have declarative way of modifying client behavior.
We currently do not have a declarative way of modifying client behavior.

Copilot uses AI. Check for mistakes.
Comment on lines +35 to 44
.2+|`io.helidon.common.config`
`Config`
|`80`
|`io.helidon.common.config`
|Empty config instance
|N/A
|Common config instance (empty)
|===
== Module `io.helidon.scheduling` [[helidon-scheduling]]
|===
|Contract |Weight |Name qualifier |Description
|`io.helidon.scheduling.TaskManager`
|`90`
|`io.helidon.config`
|Configuration either from meta configuration (config profiles), or from service registry
|N/A
Copy link

Copilot AI Nov 28, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The table row structure is malformed. The .2+ rowspan directive on line 35 indicates that the io.helidon.common.config package name should span 2 rows, but the class name Config on line 36 should be in the same cell (pipe-separated). Currently, they are on separate lines without proper delimiters, breaking the table structure.

The correct format should be:

.2+|`io.helidon.common.config` +
`Config`
|`80`
|`io.helidon.common.config`
|Empty config instance
|N/A
|`90`
|`io.helidon.config`
|Configuration either from meta configuration (config profiles), or from service registry
|N/A

Or use separate entries without rowspan if these are meant to be different contracts.

Copilot uses AI. Check for mistakes.
Comment on lines +45 to 50
|`io.helidon.config`
`Config`
|`90`
|`io.helidon.config`
|Configuration either from meta configuration (config profiles), or from service registry
|N/A
Copy link

Copilot AI Nov 28, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This table row appears to be a duplicate of the entry on lines 35-44. Both entries describe io.helidon.config.Config with weight 90 and the same description. If this is intentional to show multiple instances of the same contract, it should be clarified. Otherwise, this duplicate should be removed.

Suggested change
|`io.helidon.config`
`Config`
|`90`
|`io.helidon.config`
|Configuration either from meta configuration (config profiles), or from service registry
|N/A

Copilot uses AI. Check for mistakes.
Comment on lines +93 to +97
|`*`
|N/A
|`io.helidon.config`
|Injection point of a configured object
|`@Configuration.Value`
Copy link

Copilot AI Nov 28, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This table row has inconsistent formatting. Line 93 shows * as the contract, which appears to be a wildcard, but the formatting doesn't match other rows. The package and class should be in a single cell (first column), but here they seem misaligned. Additionally, there's no Module specified (N/A in column 3), which is inconsistent with the table structure where most entries have a module.

Copilot uses AI. Check for mistakes.
Comment on lines +102 to +109
|Config "meta-configuration"
|N/A
|`io.helidon.config`
`MetaConfig`
|`100`
|`io.helidon.config`
|Config source "meta-configuration"
|Named with a config type
Copy link

Copilot AI Nov 28, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These two consecutive entries for io.helidon.config.MetaConfig appear to be duplicates with the same weight (100) and module (io.helidon.config), but different descriptions. The first (lines 99-103) describes "Config meta-configuration" while the second (lines 104-109) describes "Config source meta-configuration" with a different qualifier. If these are intended to represent different service instances, this should be clarified more explicitly in the descriptions or class names.

Suggested change
|Config "meta-configuration"
|N/A
|`io.helidon.config`
`MetaConfig`
|`100`
|`io.helidon.config`
|Config source "meta-configuration"
|Named with a config type
|Config "meta-configuration" (global configuration instance)
|N/A
|`io.helidon.config`
`MetaConfig`
|`100`
|`io.helidon.config`
|Config source "meta-configuration" (per-source configuration instance)
|Qualified by config source type (e.g., `@Named("file")`)

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

4.x Version 4.x docs OCA Verified All contributors have signed the Oracle Contributor Agreement. security

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Document declarative security

1 participant